// src/directives/index.js
import { App } from "vue";

// 自动导入 modules 目录下的所有 .js 文件
const modulesFiles = require.context("./modules", true, /\.js$/);

// 用于存储所有指令的对象
const directives = modulesFiles.keys().reduce((modules, modulePath) => {
  // 获取文件名作为指令名（如：permission.js → permission）
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");
  const value = modulesFiles(modulePath);
  modules[moduleName] = value.default || value; // 兼容默认导出和命名导出
  return modules;
}, {});

// 批量注册指令
export const setupDirectives = (app) => {
  Object.keys(directives).forEach((key) => {
    app.directive(key, directives[key]);
  });
};

export default setupDirectives;
